/**
 * @type {Date}
 *
 * @properties={typeid:35,uuid:"4806740C-7528-43B2-A7AA-B8A5645FD70E",variableType:93}
 */
var f_fecha_hoy = null;

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"772D7E81-F2DB-493F-B584-C663FFA9BE21"}
 */
function aprueba(event) 
{
for (var i=1;i <= controller.getMaxRecordIndex() ;i++)
{
	controller.setSelectedIndex(i);
	if(marcado==1)
	{
		if(estado==globals.zconf_cambio_prec_estado_ingresado)  
			estado=globals.zconf_cambio_prec_estado_aprobado;
	}
	// ARTICULOS  //////////////////////////////////////////////////////////////
	if (tipo==globals.zconf_cambio_prec_tipo_articulo)
	{  		
		cambio_precios_to_productos.costo=precio_nuevo;
	}
	// COTIZACION /////////////////////////////////////////////////////////////
	if (tipo==globals.zconf_cambio_prec_tipo_cotizacion)
	{ 	
		cambio_precios_to_monedas.cotizacion=precio_nuevo;
	}
	// RUBROS ////////////////////////////////////////////////////////////////
	if (tipo==globals.zconf_cambio_prec_tipo_rubro)
	{ 	
		for (var j=1;j <= controller.getMaxRecordIndex();j++)
		{
			cambio_precios_to_rubros.rubros_to_productos.costo=
				(cambio_precios_to_rubros.rubros_to_productos.costo * 
				((100 + porcentaje_nuevo) / 100)) 
		}	
	}
	// FLETE //////////////////////////////////////////////////////////////////
	
}  //  fin for de recorrida del form
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"0EEB3E21-9C62-480C-8C66-6D88DA998613"}
 */
function noaprueba(event) 
{
	var i = 1;
	while (i <= controller.getMaxRecordIndex())
	{
		controller.setSelectedIndex(i);
		if(marcado==1)
		{
			controller.deleteRecord();
		}
		else
			i++;
	}
}

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"C9DCC876-2487-4318-B074-BBF5E6E2DA34"}
 */
function onShow(firstShow, event) 
{
	databaseManager.setAutoSave(true);
	f_fecha_hoy=new Date();
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"D9A14867-1BE9-4EDE-971E-EF4677098260"}
 * @AllowToRunInFind
 */
function cambia_precio(event) 
{
	if(estado==globals.zconf_cambio_prec_estado_aprobado) 
	{  
		var aux_flete
		var cuantos
	// ARTICULOS  //////////////////////////////////////////////////////////////
		if (tipo==globals.zconf_cambio_prec_tipo_articulo)
		{
			/** @type {JSFoundSet<db:/infocom/productos>}*/
			var fs_productos=databaseManager.getFoundSet(databaseManager.getDataSourceServerName(controller.getDataSource()),'productos');
			if(fs_productos.find()==false)
			{ // falla el find
				globals.DIALOGS.showWarningDialog('Aviso','No encontro articulos. (Find)','OK')
				return false;
			}
			// BUSCA PRODUCTO
			fs_productos.producto_id=producto_id; 
			if(fs_productos.search()==1)
			{ // recalcula
					databaseManager.setAutoSave(false);  
					fs_productos.setSelectedIndex(1);
					//  los 2 sig. se pasaron al metodo aprueba 22/07/2011
					//fs_productos.costo=precio_nuevo;  
					if(fs_productos.productos_to_monedas.moneda_id==1)
						fs_productos.costo_en_pesos=fs_productos.costo;
					else
						fs_productos.costo_en_pesos=fs_productos.costo * fs_productos.productos_to_monedas.cotizacion;
					fs_productos.precio_unitario=fs_productos.costo_en_pesos + (fs_productos.costo_en_pesos * (fs_productos.utilidad / 100));
				//  BUSCA EXISTENCIAS   	
					cuantos=databaseManager.getFoundSetCount(fs_productos.productos_to_existencias)
					for (var i=1 ; i<=cuantos; i++)
					{
						fs_productos.productos_to_existencias.setSelectedIndex(i);
						aux_flete=fs_productos.productos_to_existencias.existencias_to_fletes.importe_en_pesos /
								 	  fs_productos.cantidad_x_carga;
						fs_productos.productos_to_existencias.costo_en_pesos=fs_productos.costo_en_pesos
						fs_productos.productos_to_existencias.costo_flete=aux_flete
						fs_productos.productos_to_existencias.precio_venta= 
						 (fs_productos.productos_to_existencias.costo_en_pesos + fs_productos.productos_to_existencias.costo_flete)
						 * (fs_productos.utilidad / 100);							  
					}
					estado=globals.zconf_cambio_prec_estado_actualizado;  	
					if (databaseManager.saveData()==true) 					
					{
						globals.DIALOGS.showInfoDialog('Cambio de Precios', 'Precio de articulo ' + cambio_precios_to_productos.cod_producto + '  actualizado' ,  "Ok")
						return true;
					}	
					else
					{
						globals.DIALOGS.showWarningDialog('Cambio de Precios', 'Precio de articulo ' + cambio_precios_to_productos.cod_producto + '  NO fue actualizado',  "Ok")
						databaseManager.revertEditedRecords();
						return false;
					}			
			}
			else
			{
				globals.DIALOGS.showWarningDialog('Aviso','No encontro en productos el articulo ' + cambio_precios_to_productos.cod_producto,'OK')
				return false;			
			}
		}
	// MADERAS //////////////////////////////////////////////////////////////
		if (tipo==globals.zconf_cambio_prec_tipo_madera)
		{
			var fs_maderas=databaseManager.getFoundSet(databaseManager.getDataSourceServerName(controller.getDataSource()),'maderas');
			if(fs_maderas.find()==false)
			{ // falla el find
				globals.DIALOGS.showWarningDialog('Aviso','No encontro maderas. (Find)','OK')
				return false;
			}
			// BUSCA PRODUCTO
			fs_maderas.maderas_id=maderas_id;
			if(fs_maderas.search()==1)
			{ // recalcula
				fs_maderas.setSelectedIndex(1);
				databaseManager.setAutoSave(false);  
					// costo en maderas
				//los 2 sig. se pasaron al metodo aprueba 22/07/2011
				//fs_maderas.costo=precio_nuevo;
				if(fs_maderas.maderas_to_productos.productos_to_monedas.moneda_id ==1)
						fs_maderas.costo_en_pesos=fs_maderas.costo ;
				else
						fs_maderas.costo_en_pesos=(fs_maderas.costo + (fs_maderas.costo * fs_maderas.maderas_to_monedas.cotizacion));  //moneda de la madera o del producto? asi es de la moneda
						
				cuantos=databaseManager.getFoundSetCount(fs_maderas.maderas_to_productos);
				for (var i=1 ; i<=cuantos; i++)
				{
					fs_maderas.maderas_to_productos.setSelectedIndex(i);
					// costo en productos
					fs_maderas.maderas_to_productos.costo=fs_maderas.costo * fs_maderas.maderas_to_productos.coeficiente;
					fs_maderas.maderas_to_productos.costo_en_pesos=fs_maderas.costo * fs_maderas.maderas_to_monedas.cotizacion;
					fs_maderas.maderas_to_productos.precio_unitario=fs_maderas.maderas_to_productos.costo_en_pesos + 
						(fs_maderas.maderas_to_productos.costo_en_pesos *
						fs_maderas.maderas_to_productos.productos_to_margen_maderas.maderas_porcentaje / 100) ; 
					// precio en exitencias
					var cuantos_exi=databaseManager.getFoundSetCount(fs_productos.productos_to_existencias);
					for (var j=1 ;j<=cuantos_exi; j++)
					{	
						fs_productos.productos_to_existencias.setSelectedIndex(j);
						globals.gdeposito=fs_productos.productos_to_existencias.depositos_id;
						aux_flete=fs_maderas.maderas_to_maderas_depositos_unico.maderas_depositos_to_fletes.importe_en_pesos
										/ fs_maderas.cantidad_x_carga;
						fs_maderas.maderas_to_productos.productos_to_existencias.costo_en_pesos=
							 fs_maderas.maderas_to_productos.costo_en_pesos;
						fs_maderas.maderas_to_productos.productos_to_existencias.costo_flete=aux_flete;
						fs_maderas.maderas_to_productos.productos_to_existencias.precio_venta=
							(fs_maderas.maderas_to_productos.productos_to_existencias.costo_en_pesos + 
							fs_maderas.maderas_to_productos.productos_to_existencias.costo_flete) * 
							(fs_maderas.maderas_to_productos.productos_to_margen_maderas.maderas_porcentaje / 100);
					}
				}
				estado=globals.zconf_cambio_prec_estado_actualizado;   	
				if (databaseManager.saveData()==true) 				   
				{
					globals.DIALOGS.showInfoDialog('Cambio de Precios', 'Precio de madera actualizado' ,  "Ok")
					return true;
				}	
				else
				{
					globals.DIALOGS.showWarningDialog('Cambio de Precios','Precio de madera   NO fue actualizado',  "Ok")
					databaseManager.revertEditedRecords();
					return false;
				}
			}
		}
		else
		{
			globals.DIALOGS.showWarningDialog('Aviso','No encontro la madera ','OK')
			return false;			
		}			
	}  // fin del primer if
	else
	{
		globals.DIALOGS.showWarningDialog('Aviso','El cambio debe estar aprobado para continuar ','OK')
		return false;
	}
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"45325559-4AB2-4DD6-95B5-7AE6EA31E674"}
 */
function onDataChange_precio_nuevo(oldValue, newValue, event) 
{
	porc_calculado=((precio_nuevo - precio_anterior)/precio_anterior * 100)
	return true;
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"9732D27F-A155-4642-AF0E-4D708114BF02"}
 */
function marcar_todo(event) 
{
for (var i=1;i <= controller.getMaxRecordIndex() ;i++)
	{
	controller.setSelectedIndex(i);
	marcado=1;
	}
controller.setSelectedIndex(1);
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"C7646E4B-1BDA-410B-B47F-11595C4DA6F6"}
 */
function desmarcar_todo(event) {
for (var i=1;i <= controller.getMaxRecordIndex() ;i++)
	{
	controller.setSelectedIndex(i);
	marcado=0;
	}
controller.setSelectedIndex(1);
}
